<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
      <div>
        <span>姓名:</span>
        <input type="text" v-model="name" />
      </div>
      <div>
        <span>年龄:</span>
        <input type="number" v-model="age"  />
      </div>
      <div>
        <span>性别:</span>
        <select  v-model="gender">
          <option value="男" gender="gender">男</option>
          <option value="女" gender="gender">女</option>
        </select>
      </div>
      <div>
        <button  @click="Revise">添加/修改</button>
      </div>
      <div>
        <table border="1" cellpadding="10" cellspacing="0">
          <tr>
            <th>序号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
          </tr>
          <tr v-for="(item,index) in list" :key="item.id">
            <td>{{index + 1}}</td>
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.gender}}</td>
            <td>
              <button @click="del(index)">删除</button>
              <button @click="edit(item)">编辑</button>
            </td>
          </tr>
        </table>
      </div>
  </div>
  <script src="../vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
          list: [
            {
              id: Date.now(),
              name: "Tom",
              age: 19,
              gender: "男",
            },
            {
              id: Date.now(),
              name: "老舍",
              age: 54,
              gender: "男",
            },
            {
              id: Date.now() + 2,
              name: "Jone",
              age: 21,
              gender: "女",
            },
          ],
          name: "",
          age: "",
          gender: "男",
          editiD: "",
        },
        methods: {
          Revise() {
            if (this.name.trim() === "") return alert("请输入姓名");
            if (!this.age) return alert("请输入年龄");

            if (this.editiD) {
              let index = this.list.find((ele) => ele.id === this.editiD);
              this.list.splice(index, 1, {
                id: this.editiD,
                name: this.name,
                age: this.age,
                gender: this.gender,
              });
            } else {
              this.list.push({
                id: Date.now(),
                name: this.name,
                age: this.age,
                gender: this.gender,
              });
            }

            this.name = "";
            this.age = "";
            this.gender = "";
            this.editiD = ''
          },
          edit(item) {
            this.name = item.name;
            this.age = item.age;
            this.gender = item.gender;
            this.editiD = item.id;
          },
          del(index){
            this.list.splice(index,1)
          }
        },
    })
  </script>
</body>

</html>